home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / DShowIDL / iamovie.idl < prev    next >
Text File  |  2001-10-08  |  5KB  |  145 lines

  1. //------------------------------------------------------------------------------
  2. // File: IAMovie.idl
  3. //
  4. // Desc: 
  5. //
  6. // Copyright (c) 1992-2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9.  
  10. [
  11. object,
  12. uuid(359ace10-7688-11cf-8b23-00805f6cef60),
  13. pointer_default(unique)
  14. ]
  15. interface IAMovie : IFilterGraph
  16. {
  17.         // IGraphBuilder
  18.         // Connect these two pins directly or indirectly, using transform filters
  19.         // if necessary.
  20.  
  21.         HRESULT Connect
  22.         ( [in] IPin * ppinOut,    // the output pin
  23.           [in] IPin * ppinIn      // the input pin
  24.         );
  25.  
  26.  
  27.         // Connect this output pin directly or indirectly, using transform filters
  28.         // if necessary to something that will render it.
  29.  
  30.         HRESULT Render
  31.         ( [in] IPin * ppinOut     // the output pin
  32.         );
  33.  
  34.  
  35.         // IMediaControl methods
  36.         HRESULT Run();
  37.         HRESULT Pause();
  38.         HRESULT Stop();
  39.  
  40.         //returns the state. same semantics as IMediaFilter::GetState
  41.  
  42.         HRESULT GetState(
  43.                     [in] LONG msTimeout,
  44.                     [out] FILTER_STATE* pfs);
  45.  
  46.         // adds and connects filters needed to play the specified file
  47.         HRESULT RenderFile(
  48.                     [in] LPCWSTR strFilename);
  49.  
  50.         // adds to the graph the source filter that can read this file,
  51.         // and returns an IFilterInfo object for it
  52.         HRESULT AddSourceFilter(
  53.                     [in] LPCWSTR strFilename,
  54.                     [out] IBaseFilter ** ppUnk);
  55.  
  56.         // get back the event handle. This is manual-reset
  57.         // (don't - it's reset by the event mechanism) and remains set
  58.         // when events are queued, and reset when the queue is empty.
  59.         HRESULT GetEventHandle(
  60.                         [out] HEVENT * hEvent);
  61.  
  62.         // remove the next event notification from the head of the queue and
  63.         // return it. Waits up to msTimeout millisecs if there are no events.
  64.         // if a timeout occurs without any events, this method will return
  65.         // E_ABORT, and the value of the event code and other parameters
  66.         // is undefined.
  67.         HRESULT GetEvent(
  68.                         [out] long * lEventCode,
  69.                         [out] long * lParam1,
  70.                         [out] long * lParam2,
  71.                         [in] long msTimeout
  72.                         );
  73.  
  74.         // Calls GetEvent repeatedly discarding events until it finds a
  75.         // completion event (EC_COMPLETE, EC_ERRORABORT, or EC_USERABORT).
  76.         // The completion event is removed from the queue and returned
  77.         // in pEvCode. Note that the object is still in running mode until
  78.         // a Pause or Stop call is made.
  79.         // If the timeout occurs, *pEvCode will be 0 and E_ABORT will be
  80.         // returned.
  81.         HRESULT WaitForCompletion(
  82.                         [in] long msTimeout,
  83.                         [out] long * pEvCode);
  84.  
  85.         // cancels any system handling of the specified event code
  86.         // and ensures that the events are passed straight to the application
  87.         // (via GetEvent) and not handled. A good example of this is
  88.         // EC_REPAINT: default handling for this ensures the painting of the
  89.         // window and does not get posted to the app.
  90.         HRESULT CancelDefaultHandling(
  91.                         [in] long lEvCode);
  92.  
  93.         // restore the normal system default handling that may have been
  94.         // cancelled by CancelDefaultHandling().
  95.         HRESULT RestoreDefaultHandling( [in] long lEvCode);
  96.  
  97.         // properties
  98.         HRESULT get_Duration(
  99.                     [out] REFTIME* plength);
  100.  
  101.         HRESULT put_CurrentPosition(
  102.                     [in] REFTIME llTime);
  103.  
  104.         HRESULT get_CurrentPosition(
  105.                     [out] REFTIME* pllTime);
  106.  
  107.         HRESULT get_StopTime(
  108.                     [out] REFTIME* pllTime);
  109.  
  110.         HRESULT put_StopTime(
  111.                     [in] REFTIME llTime);
  112.  
  113.         HRESULT get_PrerollTime(
  114.                     [out] REFTIME* pllTime);
  115.         HRESULT put_PrerollTime(
  116.                     [in] REFTIME llTime);
  117.  
  118.         HRESULT put_Rate(
  119.                     [in] double dRate);
  120.         HRESULT get_Rate(
  121.                     [out] double * pdRate);
  122.  
  123.     /* New methods */
  124.     HRESULT RemoveAllFilters();
  125.     HRESULT Play();
  126.     HRESULT PlayFile([in] LPCWSTR strFilename);
  127.     HRESULT EnumFiltersByInterface( [in] REFIID riid, [out] IEnumFilters ** ppEnum );
  128.     HRESULT EnumPins( [out] IEnumPins ** ppEnum );
  129.     HRESULT EnumPinsIn( [out] IEnumPins ** ppEnum );
  130.     HRESULT EnumPinsOut( [out] IEnumPins ** ppEnum );
  131.     HRESULT RenderAll();
  132.     HRESULT RenderNewFile( [in] LPCWSTR strFilename);
  133.  
  134.     // Free any resources associated with the parameters to an event.
  135.         // Event parameters may be LONGs, IUnknown* or BSTR. No action
  136.         // is taken with LONGs. IUnknown are passed addrefed and need a
  137.         // Release call. BSTR are allocated by the task allocator and will be
  138.         // freed by calling the task allocator.
  139.         HRESULT FreeEventParams(
  140.                     [in] long lEvCode,
  141.                     [in] long lParam1,
  142.                     [in] long lParam2);
  143. }
  144.  
  145.